package models

import (
	"gorm.io/gorm"
)

// sysContent 对应数据库表 sys_content
/*
 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `lang` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '语种',
  `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '标题',
  `type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '类型',
  `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '内容',
  `status` tinyint(1) NOT NULL COMMENT '状态',
  `app_id` int(11) DEFAULT '0' COMMENT '数据归属',
*/
type SysContent struct {
	gorm.Model
	ID        uint   `gorm:"primaryKey;autoIncrement;comment:主键，自增ID"`
	Lang      string `gorm:"not null;default:'';comment:语言"`
	Title     string `gorm:"not null;default:'';comment:标题"`
	Type      string `gorm:"not null;default:'';comment:类型"`
	Content   string `gorm:"not null;default:'';comment:内容"`
	Status    uint8  `gorm:"not null;default:1;comment:0状态：2禁用，1正常"`
	AppID     int    `gorm:"default:0;comment:数据归属"`
	CreatedAt int64  `gorm:"autoCreateTime;comment:创建时间戳"` // 修改为 int64 类型
	UpdatedAt int64  `gorm:"autoUpdateTime;comment:更新时间戳"` // 修改为 int64 类型
}

type SysContentList struct {
	ID        uint   `json:"id"`
	Lang      string `json:"lang"`
	Title     string `json:"title"`
	Type      string `json:"type"`
	Content   string `json:"content"`
	Status    uint8  `json:"status"`
	AppID     int    `json:"app_id"`
	CreatedAt string `json:"created_at"`
	UpdatedAt string `json:"updated_at"`
}

type SysContentCreate struct {
	Lang    string `json:"lang"`
	Title   string `json:"title"`
	Type    string `json:"type"`
	Content string `json:"content"`
	Status  uint8  `json:"status"`
	AppID   int    `json:"app_id"`
}

type SysContentUpdate struct {
	ID      uint   `json:"id"`
	Lang    string `json:"lang"`
	Title   string `json:"title"`
	Type    string `json:"type"`
	Content string `json:"content"`
	Status  uint8  `json:"status"`
	AppID   int    `json:"app_id"`
}

// TableName 设置表名为 sys_content
func (SysContent) TableName() string {
	return "sys_content"
}
